stdlib.h হেডার ফাইল এবং এর ফাংশনসমূহ

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference) Memory Management Functions (মেমোরি ম্যানেজমেন্ট ফাংশনস) |
202
202

stdlib.h হেডার ফাইল এবং এর ফাংশনসমূহ

stdlib.h হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় স্ট্যান্ডার্ড লাইব্রেরির বিভিন্ন ফাংশন সরবরাহ করে, যা মেমোরি ম্যানেজমেন্ট, সংখ্যা রূপান্তর, এলিমেন্ট শ্রেণীকরণ এবং বিভিন্ন ইউটিলিটি ফাংশন নিয়ে কাজ করে। প্রোগ্রামাররা এই হেডার ফাইলের ফাংশনগুলো ব্যবহার করে প্রোগ্রামের কার্যকারিতা এবং দক্ষতা বাড়াতে পারেন।

এখানে stdlib.h হেডার ফাইলের কিছু গুরুত্বপূর্ণ ফাংশন এবং তাদের ব্যাখ্যা দেওয়া হলো।


১. malloc() – মেমোরি বরাদ্দ করা

malloc() ফাংশনটি ডাইনামিক মেমোরি বরাদ্দ করতে ব্যবহৃত হয়। এটি নির্দিষ্ট সংখ্যক বাইটের জন্য মেমোরি বরাদ্দ করে এবং বরাদ্দকৃত মেমোরি ব্লকের শুরুতে একটি পয়েন্টার রিটার্ন করে।

সিঙ্কট্যাক্স:

void *malloc(size_t size);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr = (int *)malloc(5 * sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }

    // মেমোরি ব্যবহার
    for (int i = 0; i < 5; i++) {
        arr[i] = i + 1;
    }

    for (int i = 0; i < 5; i++) {
        printf("%d ", arr[i]);
    }

    free(arr);  // মেমোরি মুক্ত করা
    return 0;
}

২. calloc() – শূন্য-মেমোরি বরাদ্দ

calloc() ফাংশনটি ডাইনামিক মেমোরি বরাদ্দ করে এবং বরাদ্দকৃত মেমোরিকে শূন্য দিয়ে পূর্ণ করে। এটি নির্দিষ্ট সংখ্যক এলিমেন্টের জন্য মেমোরি বরাদ্দ করে এবং প্রতিটি এলিমেন্টকে শূন্য দেয়।

সিঙ্কট্যাক্স:

void *calloc(size_t num, size_t size);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr = (int *)calloc(5, sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }

    // মেমোরি ব্যবহার
    for (int i = 0; i < 5; i++) {
        printf("%d ", arr[i]);  // প্রতিটি এলিমেন্ট শূন্য
    }

    free(arr);  // মেমোরি মুক্ত করা
    return 0;
}

৩. realloc() – মেমোরি পুনরায় বরাদ্দ

realloc() ফাংশনটি পূর্বে বরাদ্দকৃত মেমোরি ব্লকের আকার পরিবর্তন করতে ব্যবহৃত হয়। এটি পূর্ববর্তী মেমোরি ব্লকের উপরে একটি নতুন আকারের মেমোরি বরাদ্দ করে।

সিঙ্কট্যাক্স:

void *realloc(void *ptr, size_t new_size);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr = (int *)malloc(5 * sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }

    // মেমোরি ব্যবহার
    for (int i = 0; i < 5; i++) {
        arr[i] = i + 1;
    }

    // মেমোরি পুনরায় বরাদ্দ
    arr = (int *)realloc(arr, 10 * sizeof(int));
    if (arr == NULL) {
        printf("Memory reallocation failed\n");
        return 1;
    }

    for (int i = 0; i < 10; i++) {
        printf("%d ", arr[i]);
    }

    free(arr);  // মেমোরি মুক্ত করা
    return 0;
}

৪. free() – মেমোরি মুক্ত করা

free() ফাংশনটি পূর্বে বরাদ্দকৃত মেমোরি ব্লককে মুক্ত করতে ব্যবহৃত হয়। এটি মেমোরি লিক প্রতিরোধ করে এবং মেমোরি পুনরায় ব্যবহারযোগ্য করে তোলে।

সিঙ্কট্যাক্স:

void free(void *ptr);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr = (int *)malloc(5 * sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }

    // মেমোরি ব্যবহার
    free(arr);  // মেমোরি মুক্ত করা
    return 0;
}

৫. atoi() – স্ট্রিং থেকে ইন্টিজার রূপান্তর

atoi() ফাংশনটি একটি স্ট্রিংকে ইন্টিজারে রূপান্তর করে। যদি স্ট্রিংয়ে বৈধ সংখ্যা থাকে, তবে এটি সংখ্যায় রূপান্তর করে।

সিঙ্কট্যাক্স:

int atoi(const char *str);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    char str[] = "123";
    int num = atoi(str);
    printf("The integer is: %d\n", num);
    return 0;
}

৬. atof() – স্ট্রিং থেকে ফ্লোট রূপান্তর

atof() ফাংশনটি একটি স্ট্রিংকে ফ্লোটে রূপান্তর করে। এটি স্ট্রিংয়ে থাকা সংখ্যাকে ফ্লোটে রূপান্তর করে।

সিঙ্কট্যাক্স:

double atof(const char *str);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    char str[] = "3.14159";
    double pi = atof(str);
    printf("The float value is: %lf\n", pi);
    return 0;
}

৭. rand() – র্যান্ডম সংখ্যা তৈরি

rand() ফাংশনটি র্যান্ডম সংখ্যা তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত srand() ফাংশনের সাথে ব্যবহার করা হয়।

সিঙ্কট্যাক্স:

int rand(void);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("%d\n", rand());
    }
    return 0;
}

৮. srand() – র্যান্ডম সংখ্যা সিড সেট করা

rand() ফাংশনের আউটপুট ভিন্ন করার জন্য srand() ফাংশনটি ব্যবহার করা হয়। এটি একটি নির্দিষ্ট সিড দিয়ে র্যান্ডম সংখ্যা তৈরি শুরু করে।

সিঙ্কট্যাক্স:

void srand(unsigned int seed);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(0));  // সময়ের ওপর ভিত্তি করে সিড সেট করা
    for (int i = 0; i < 5; i++) {
        printf("%d\n", rand());
    }
    return 0;
}

৯. abs() – অ্যাবসোলিউট মান নির্ণয়

abs() ফাংশনটি একটি পূর্ণসংখ্যার অ্যাবসোলিউট মান নির্ণয় করে। এটি একটি পূর্ণসংখ্যা আর্গুমেন্ট গ্রহণ করে এবং তার অ্যাবসোলিউট মান রিটার্ন করে।

সিঙ্কট্যাক্স:

int abs(int n);

উদাহরণ:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int num = -10;
    printf("Absolute value: %d\n", abs(num));
    return 0;
}

সারসংক্ষেপ

ফাংশনকাজউদাহরণ
malloc()ডাইনামিক মেমোরি বরাদ্দ করাint *arr = (int *)malloc(size);
calloc()শূন্য-মেমোরি বরাদ্দ করাint *arr = (int *)calloc(num, size);
realloc()মেমোরি পুনরায় বরাদ্দ করাarr = (int *)realloc(arr, new_size);
free()মেমোরি মুক্ত করাfree(arr);
atoi()স্ট্রিং থেকে ইন্টিজার রূপান্তরint num = atoi(str);
atof()স্ট্রিং থেকে ফ্লোট রূপান্তরdouble val = atof(str);
rand()র্যান্ডম সংখ্যা তৈরিint r = rand();
srand()র্যান্ডম সংখ্যা সিড সেট করাsrand(time(0));
abs()অ্যাবসোলিউট মান নির্ণয়int abs_val = abs(num);

stdlib.h হেডার ফাইলটি সি প্রোগ্রামিংয়ের বিভিন্ন কাজকে সহজ এবং কার্যকরী করে তোলে। এর ফাংশনগুলো ব্যবহার করে ডাইনামিক মেমোরি ম্যানেজমেন্ট, স্ট্রিং রূপান্তর, র্যান্ডম সংখ্যা তৈরি এবং বিভিন্ন ইউটিলিটি কাজ পরিচালনা করা সম্ভব।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion